﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CROSLAND.BL.BE
{
    public class MaterialBE
    {
        private decimal stock;

        public decimal Stock
        {
            get { return stock; }
            set { stock = value; }
        }


        private string _codMaterial;

        public string CodMaterial
        {
            get { return _codMaterial; }
            set { _codMaterial = value; }
        }

        private string _descMaterial;

        public string DescMaterial
        {
            get { return _descMaterial; }
            set { _descMaterial = value; }
        }

        private string _descripcion;

        public string Descripcion
        {
            get { return _descripcion; }
            set { _descripcion = value; }
        }

        private string _codUMedida;

        public string CodUMedida
        {
            get { return _codUMedida; }
            set { _codUMedida = value; }
        }

        private decimal _precioUnit;

        public decimal PrecioUnit
        {
            get { return _precioUnit; }
            set { _precioUnit = Math.Round(value,2); }
        }

        private string _jerarquia;

        public string Jerarquia
        {
            get { return _jerarquia; }
            set { _jerarquia = value; }
        }

        private decimal _peso;

        public decimal Peso
        {
            get { return _peso; }
            set { _peso = value; }
        }

        private string _uMedidaRendimiendo;

        /// <summary>
        /// MEINH: Unidad medida para visualización
        /// </summary>
        public string UMedidaRendimiendo
        {
            get { return _uMedidaRendimiendo; }
            set { _uMedidaRendimiendo = value; }
        }

        private decimal _valorRendimiento;

        /// <summary>
        /// UMREZ: Contador para la conversión en unidades de medida base
        /// </summary>
        public decimal ValorRendimiento
        {
            get { return decimal.Round(_valorRendimiento, 3); }
            set { _valorRendimiento = value; }
        }

        /// <summary>
        /// concatena el valor del rendimiento con la unidad.
        /// </summary>
        public string Rendimiento
        {
            get { return (ValorRendimiento != 0m ? ValorRendimiento.ToString() + " " + UMedidaRendimiendo : "-"); }
        }

        private string _tipoMaterial;
        /// <summary>
        /// NA = Nacional
        /// IM = Importado
        /// </summary>
        public string TipoMaterial
        {
            get { return _tipoMaterial; }
            set { _tipoMaterial = value; }
        }

        //-----------------------------------------------
        private bool _esFlete;

        public bool EsFlete
        {
            get { return _esFlete; }
            set { _esFlete = value; }
        }

        private bool _esEstiba;

        public bool EsEstiba
        {
            get { return _esEstiba; }
            set { _esEstiba = value; }
        }

        private bool _especialServ;

        public bool EspecialServ
        {
            get { return _especialServ; }
            set { _especialServ = value; }
        }
        //-----------------------------------------------

        private string _tipo;
        /// <summary>
        /// MTART
        /// z002 = Servicio
        /// </summary>
        public string Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }

        public string CodMaterialCorto
        {
            get { return _codMaterial; }
            set { _codMaterial = value; }
        }

        private bool _tieneServ;

        public bool TieneServ
        {
            get { return _tieneServ; }
            set { _tieneServ = value; }
        }

        private string _descontinuado;

        public string Descontinuado
        {
            get { return _descontinuado; }
            set { _descontinuado = value; }
        }

        //@rgutierrez 15.11.2011
        public string DescMovil
        {
            get { return this.CodMaterialCorto + " - " + this.DescMaterial; }
        }


        public string sStock { get; set; }
        public string Posicion { get; set; }
        public decimal PrecioUnitario { get; set; }
        public string Catalogo { get; set; }
        public Decimal Plista { get; set; }
        public Decimal Ppromo { get; set; }
        public string marca { get; set; }
        public string modelo { get; set; }
        public string moneda { get; set; }

        private List<DetalleBE> listaDetalle = new List<DetalleBE>();

        public List<DetalleBE> ListaDetalle
        {
            get { return listaDetalle; }
            set { listaDetalle = value; }
        }

        public MaterialBE()
        {

        }

        public MaterialBE(string codMaterial, string descMaterial)
        {
            this._codMaterial = codMaterial;
            this._descMaterial = descMaterial;
            this._descripcion = descMaterial;
        }
            
        /// <summary>
        /// Indicador si el material tiene clasificacion fiscal igv
        /// </summary>
        public string materialIGV { get; set; }
        public string materialISC { get; set; }
    }
}
